<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>IoT云平台</title>
    <link rel="shortcut icon" href="favicon.ico">

    <!-- 引入样式 -->
    <link rel="stylesheet" href="plugins/element-ui/index.css" />
    <link rel="stylesheet" href="styles/common.css" />
    <link rel="stylesheet" href="styles/index.css" />
    <link rel="stylesheet" href="styles/icon/iconfont.css" />
    <style>
      .body{
        min-width: 1366px;
      }
      .app-main{
        height: calc(100% - 64px);
      }
      .app-main .divTmp{
        width: 100%;
        height: 100%;
      }
    </style>
  </head>

  <body>
    <div class="app" id="app">
      <div class="app-wrapper openSidebar clearfix">
        <!-- sidebar -->
        <div class="sidebar-container">
          <div class="logo">
            <!-- <img src="images/logo.png" width="122.5" alt="" /> -->
            <img src="images/login/login-logo.png" alt="" style="width: 117px; height: 32px" />
          </div>

          <el-scrollbar wrap-class="scrollbar-wrapper">
            <!--default-active="58"-->
            <el-menu

                    :unique-opened="false"
                    :collapse-transition="false"
                    background-color="#F0F8FF"
                    text-color="#272a36"
                    active-text-color="#f4f4f5">
              <div v-for="item in menuList" :key="item.id">
                <el-submenu :index="item.id" v-if="item.children && item.children.length>0">
                  <template slot="title">
                    <i class="iconfont" :class="item.icon"></i>
                    <span>{{item.name}}</span>
                  </template>
                  <el-menu-item
                          v-for="sub in item.children"
                          :index="sub.id"
                          :key="sub.id"
                          @click="menuHandle(sub,false)"
                  >
                    <i class="iconfont" :class="sub.icon"></i>
                    <span slot="title">{{sub.name}}</span>
                  </el-menu-item>
                </el-submenu>
                <!--v-bind:index="item.id"-->
                <el-menu-item v-else  @click="menuHandle(item,false)">
                  <i class="iconfont" :class="item.icon"></i>
                  <span slot="title">{{item.name}}</span>
                </el-menu-item>
              </div>
            </el-menu>
          </el-scrollbar>
        </div>
        <div class="main-container">
          <!-- <navbar /> -->
          <div class="navbar">
            <div class="head-lable">
              <span v-if="goBackFlag" class="goBack" @click="goBack()"><img src="images/icons/btn_back@2x.png" alt="" /> 返回</span>
              <span>{{headTitle}}</span>
            </div>
            <div class="right-menu">
              <div class="avatar-wrapper">{{ userInfo.name }}</div>
              <img src="images/icons/btn_close@2x.png" class="outLogin" alt="退出" @click="logout()" />
            </div>
          </div>
          <div class="app-main" v-loading="loading">
            <div class="divTmp" v-show="loading"></div>
            <iframe
              id="cIframe"
              class="c_iframe"
              name="cIframe"
              :src="iframeUrl"
              width="100%"
              height="auto"
              frameborder="0"
              v-show="!loading"></iframe>
          </div>
        </div>
      </div>
    </div>
    <!-- 开发环境版本，包含了有帮助的命令行警告 -->
    <script src="plugins/vue/vue.js"></script>
    <!-- 引入组件库 -->
    <script src="plugins/element-ui/index.js"></script>
    <!-- 引入axios -->
    <script src="plugins/axios/axios.min.js"></script>
    <script src="js/request.js"></script>
    <script src="./api/login.js"></script>
    <script type="text/javascript">
      new Vue({
        el: '#app',
        data() {
          return {
            defAct: 58,
            menuActived: '',
            userInfo: {},
            menuList: [],
            iframeUrl: '',
            headTitle: '',
            goBackFlag: false,
            loading: true,
            timer: null
          }
        },
        methods: {
          logout() {
            console.log("退出方法")
            localStorage.removeItem('userInfo');//清理本地存储的用户信息
            window.location.href = './page/login/login.html'//跳转登录页面
          },
          goBack() {
            const menu = this.menuList.find(item => item.id === this.menuActived);
            this.menuHandle(menu, false)
          },
          menuHandle(item, goBackFlag) {
            //console.log("menuHandle"+JSON.stringify(item));
            this.loading = true;
            this.menuActived = item.id;
            this.iframeUrl = item.url;
            this.headTitle = item.name;
            this.goBackFlag = goBackFlag;
            this.closeLoading()
          },
          closeLoading() {
            this.timer = null;
            this.timer = setTimeout(() => {
              this.loading = false
            }, 100)
          },
          initMenuList(){
            findMenu().then(res => {
              if (String(res.code) === '200') {
                //console.log("res=====" + JSON.stringify(res));
                this.menuList = res.data;
                this.iframeUrl = this.menuList[0].url;
                this.headTitle = this.menuList[0].name;
                this.defAct = this.menuList[0].id;
                this.menuActived = this.menuList[0].id;
              } else {
                this.$message.error(res.msg || '操作失败')
              }
            }).catch(err => {
              this.$message.error('请求出错了：' + err)
            })
          }
        },
        created() {
          const userInfo = window.localStorage.getItem('userInfo');
          console.log("========" + userInfo);
          if (userInfo == null) {
            window.location.href = './page/login/login.html'//跳转登录页面
          }
          console.log("created before initMenuList");
          this.initMenuList();
          console.log("after before initMenuList");
          this.closeLoading()
        },
        mounted() {
          console.log("before mounted");
          window.menuHandle = this.menuHandle;
          console.log("after mounted");
        },
        beforeDestroy() {
          this.timer = null
          clearTimeout(this.timer)
        },

      })
    </script>
  </body>
</html>
